// 16、声明一个三角形类Triangle，包含属性：a,b,c，表示三条边，包含几个方法：
// 1、boolean isRightTriangle()：判断是否是一个直角三角形
// 2、boolean isIsoscelesTriangle()：判断是否是一个等腰三角形
// 3、boolean isEquilateralTriangle()：判断是否是一个等边三角形
// 4、double getArea()：根据三条边，用海伦公式求面积
// 5、double getLength()：求周长
// 并在测试类Test的main方法中调用测试

package sixteen;

public class Triangle {
    private int a, b, c;

    private boolean isTriangle() {
        // 规则：两边之和大于第三边
        return a + b > c && a + c > b && b + c > a;
    }

    double getArea() {
        double p = (a + b + c) / 2;
        return Math.sqrt(p * (p - a) * (p - b) * (p - c));
    }

    int getLength() {
        return a + b + c;
    }

    boolean isRightTriangle() {// 直角三角形
        if (isTriangle()) {
            return (a * a + b * b == c * c) || (b * b + c * c == a * a) || (a * a + c * c == b * b);
        }
        return false;
    }

    boolean isIsoscelesTriangle() {// 等腰三角形
        if (isTriangle()) {
            return a == b || a == c || b == c;
        }
        return false;
    }

    boolean isEquilateralTriangle() {// 等边三角形
        if (isTriangle()) {
            return a == b && b == c;
        }
        return false;
    }

    public static void main(String[] args) {
        Triangle t = new Triangle();
        t.setA(3);
        t.setB(4);
        t.setC(5);
        System.out.println(t.getLength());
        System.out.println(t.getArea());
        System.out.println(t.isEquilateralTriangle() ? "是等边三角形" : "不是等边三角形");
        System.out.println(t.isIsoscelesTriangle() ? "是等腰三角形" : "不是等腰三角形");
        System.out.println(t.isRightTriangle() ? "是直角三角形" : "不是直角三角形");
    }

    //============================================
    public int getA() {
        return a;
    }

    public void setA(int a) {
        this.a = a;
    }

    public int getB() {
        return b;
    }

    public void setB(int b) {
        this.b = b;
    }

    public int getC() {
        return c;
    }

    public void setC(int c) {
        this.c = c;
    }

}